/*! 
 *  PhysicsBody is the interface for all physical entities that are to be
 *  managed by the engine.
 *  -
 *  Implementation of a simple physics engine, Physics Programming course
 *  Master in Computer Game Developement, Verona, Italy
 *  -
 *  \author Andrea Casaccia
 *  \date 23 March 2012
 */

#pragma once

namespace Pheng
{
	class PhysicsBody {

	public:
		//! Updates internal state advancing time by dt seconds
		//! \param iDt simulation step in seconds
		//! \return void
		virtual void update( const float iDt ) = 0;

		//! Applies a force for the duration of current simulation step on the center of mass of this body
		//! \param iForce a vector representing the force to be applied
		virtual void applyForce( const float* iForce ) = 0;

	};
}